
// 安装插件创建路由4：npm install vue-router@4 --save



// 导入函数（创建路由器时候用）
import { createRouter,createWebHashHistory } from 'vue-router'




//导入页面
import appt from "../views/Appt.vue"
import home from "../views/Home.vue"
import leave from "../views/Leave.vue"
import pool from "../views/Pool.vue"
import report from "../views/Report.vue"
import user from "../views/User.vue"
import myLogin from "../views/MyLogin.vue"
import addUser from "../views/userModule/AddUser.vue"

import editUser from "../views/userModule/EditUser.vue"
import  detaPool from "../views/poolModule/DetaPool.vue"
import addAppt from "../views/apptModule/AddAppt.vue"

import EditAppt from "../views/apptModule/EditAppt.vue"
import addloginUser from "../views/userModule/AddUser.vue"
import LeavesBodyEnd from "../views/leavesModule/LeavesBodyend.vue"

import Access from '../components/Access.vue'


import PersonCenter from '../views/PersonCenter.vue'

import backHome from '../backatage/BackHome.vue'
import header from '../components/Header.vue'

import BulletinAdo from '../backatage/bulletinAdo/BulletinAdo.vue'
import BackFront from '../backatage/BackFront.vue'
import BallAbo from '../backatage/ballAbo/BallAbo.vue'

import AddBulletin from '../backatage/bulletinAdo/AddBulletin.vue'
import AddBall from '../backatage/ballAbo/AddBall.vue'
import updateBulletin from '../backatage/bulletinAdo/EditBulletin.vue'
import EditBall from '../backatage/ballAbo/EditBall.vue'

import Ball from '../views/Ball.vue'
//建1组路由
const routers = [
    {
        path:'/',
        redirect:'/home'
    },
    {
        path:'/no-access',
        component:Access
    },
    {
        path:'/backhome',
        component:backHome,
        // children:{
        //     path:'/appt',
        //     component:appt
        // }
        
    },
    {
        path: '/backBulletin',
        component:BulletinAdo,
        
    },
{
    path: '/BackFront',
        component:BackFront,
    
},{
    path: '/BallAbo',
        component:BallAbo,
    
},{
    path: '/addBulletin',
        component:AddBulletin,
    
},

{
    path: '/updateBulletin',
        component:updateBulletin,
    
},

{
    path: '/ball',
        component:Ball,
    
},


{
    path: '/addBall',
        component:AddBall,
    
},

{
    path: '/updateBall',
        component:EditBall,
    
},
{
    path: '/PersonCenter',
        component:PersonCenter,
    
},















   
    {
        path:'/header',
        component: header
        
    },
    {
        path:'/appt',
        component:appt
    },
    {
        path:'/addAppt',
        component:addAppt
    },
    {
        path:'/editAppt',
        component:EditAppt
    },
    {
        path:'/home',
        component:home
    },
    {
        path:'/leave',
        component:leave
    },
    {
        path:'/leavesbodyend',
        component:LeavesBodyEnd
    },
    {
        path:'/pool',
        component:pool
    },
    {
        path:'/detapool',
        component:detaPool
    },
    {
        path:'/report',
        component:report
    },
    {
        path:'/user',
        component:user
    },
    {
        path:'/adduser',
        component:addUser,

    },
   
    {
        path:'/addloginuser',
        component:addloginUser,

    },
    {
        path:'/edituser',
        component:editUser,
        
    },
  
    {
        path:'/login',
        component:myLogin
    },

]


//创建路由管理器(用函数createRouter创建)
const router = createRouter({
    // 传一个对象有一个history属性
    history:createWebHashHistory(),
   
    //routes传的是上面路由
    routes:routers
})


// 路由守卫(对访问权限控制)
router.beforeEach((to,from,next)=>{
    let token = sessionStorage.getItem("token")
    if(token||to.path==='/login'){
        next()
    }else{
        next('/login')
    }

})


// router.beforeEach((to, from, next) => {  
//     const token = sessionStorage.getItem('token');  
//     const userPart = sessionStorage.getItem('userPart'); // 假设存储了用户的 part  
    
//     if (to.matched.some(record => record.meta.requiresAuth)) {  
//       if (!token || userPart !== '1') {  
//         next({  
//           path: '/login',  
//           query: { redirect: to.fullPath } // 将跳转的路由作为参数传到登录页面  
//         });  
//       } else {  
//         next();  
//       }  
//     } else {  
//       next();  
//     }  
//   });  













// router.beforeEach((to, from, next) => {  
//     let token = sessionStorage.getItem("token");  
//     // 如果用户正在访问登录页面或者注册页面，则允许访问  
//     if (to.path === '/login' || to.path === '/adduser') {  
//         next();  
//     } else if (token) { // 如果用户有 token，则允许访问任何页面  
//         next();  
//     } else { // 否则，重定向到登录页面  
//         next('/login');  
//     }  
// });


// 路由守卫(对访问权限控制)  
// router.beforeEach((to, from, next) => {    
//     let token = sessionStorage.getItem("token");  
//     let username = sessionStorage.getItem("username"); // 假设用户名也存储在 sessionStorage 中  
  
//     // 如果用户正在访问登录页面或者注册页面，或者用户已经登录并且是admin，则允许访问  
//     if (to.path === '/login' || to.path === '/adduser' || (token && username === 'admin')) {    
//         next();    
//     } else if (token) { // 如果用户有 token 但不是 admin，则重定向到无权访问的提示页面或首页  
//         // 这里可以根据需要重定向到某个特定页面或保持当前重定向到登录页面的逻辑  
//         next('/no-access'); // 假设有一个提示用户无权访问的页面  
//     } else { // 如果用户没有 token，则重定向到登录页面  
//         next('/login');    
//     }    
// });  




// admin无权访问
// router.beforeEach((to, from, next) => {  
//     let token = sessionStorage.getItem("token");  
//     // 如果用户正在访问登录页面或者注册页面，则允许访问  
//     if (to.path === '/login' || to.path === '/adduser') {  
//         next();  
//     } else if (token) { // 如果用户有 token，则允许访问任何页面  
//         next();  
//     } else { // 否则，重定向到登录页面  
//         next('/login');  
//     }  
// });







// 用户登录也显示无权访问
// router.beforeEach((to, from, next) => {            
//     let token = sessionStorage.getItem("token");            
//     let username = sessionStorage.getItem("username"); // 获取用户名          
          
//     // 如果用户正在访问登录页面或者注册页面，或者已经有token，则允许访问    
//     if (to.path === '/login' || to.path === '/adduser' || token) {   
//         if (username === 'admin'){ // 只有admin用户才能访问受保护的路由    
//             next(); // 允许访问    
//         }else if(username != 'admin'){

//         }
        
//         // 检查是否是受保护的路由（以/user或/appt开头）  
//         if (to.path.startsWith('/user') || to.path.startsWith('/appt')) {   
//             if (username === 'admin') { // 只有admin用户才能访问受保护的路由    
//                 next(); // 允许访问    
//             } else {    
//                 next('/no-access'); // 重定向到无权限页面    
//             }    
//         } else { // 对于其他路由，只要有token就可以访问    
//             next();    
//         }    
//     } else { // 否则，重定向到登录页面    
//         next('/login');    
//     }    
// });  




// router.beforeEach((to, from, next) => {                
//     let token = sessionStorage.getItem("token");                
//     let username = sessionStorage.getItem("username"); // 获取用户名              
              
//     // 如果用户正在访问登录页面或者注册页面，则允许访问  
//     if (to.path === '/login' || to.path === '/adduser') {                
//         next(); // 直接进入页面  
//     } else if (token && username) { // 如果用户有token和username  
//         // 检查是否是受保护的路由（只有admin用户才能访问）  
//         if (to.path.startsWith('/user') || to.path.startsWith('/appt')) {  
//             if (username === 'admin') { // 只有admin用户才能访问受保护的路由  
//                 next(); // 允许访问  
//             } else {        
//                 next('/no-access'); // 重定向到无权限页面  
//             }  
//         } else { // 对于其他非受保护的路由，只要有token和username就可以访问  
//             next(); // 允许访问  
//         }  
//     } else { // 否则，重定向到登录页面（没有token或username）  
//         next('/login'); // 重定向到登录页面  
//     }        
// });









//导出路由----并在maim.js导入
export default router
